package com.jet.goods.service;

import com.jet.core.model.vo.PageVo;
import com.jet.goods.domain.dto.SkuDto;
import com.jet.goods.domain.dto.SkuSingleDto;
import com.jet.goods.domain.entity.GoodsSku;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jet.goods.domain.query.SkuPageQuery;
import com.jet.goods.domain.vo.SkuDetailListVo;
import com.jet.goods.domain.vo.SkuDetailVo;
import com.jet.goods.domain.vo.SkuVo;
import com.jet.goods.remote.stock.dto.StockSkuDto;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author author
 * @since 2025-03-04
 */
public interface IGoodsSkuService extends IService<GoodsSku> {

    List<StockSkuDto> batchEdit(long merchantNo, String spuId, List<SkuDto> skuDtos);

    StockSkuDto save(long merchantNo, String spuId, SkuDto dto);

    void save(long merchantNo, String accountId, SkuSingleDto dto);

    StockSkuDto edit(SkuDto dto);

    void edit(long merchantNo, String accountId, String skuId, SkuSingleDto dto);

    void deleteBySkuId(long merchantNo, String skuId);

    void deleteBySpuId(String spuId);

    void delete(String id);

    SkuDetailVo findDetailById(long merchantNo, String skuId);

    SkuVo findById(long merchantNo, String id);

    List<SkuVo> findAllBySpuId(String spuId);

    PageVo<SkuDetailListVo> page(long merchantNo, long storeNo, String accountId, SkuPageQuery query);
}
